#pragma once
#include <iostream>

class SubSystem
{
protected:
	int m_id;
	bool updatable;
	bool renderable;
public:
	SubSystem() { renderable = false; updatable = false; }

	void Renderable() { renderable = true; }
	void Updatable() { updatable = true; }

	bool isRenderable() { return renderable; }
	bool isUpdatable() { return updatable; }


	virtual void onInit() { printf("onInt "); }
	virtual void onUpdate() { }
	virtual void onDraw() { }
	virtual ~SubSystem() {}
};

class ParticleSubSystem : public SubSystem {
public:
	void onInit() { printf(" ParticleSubSystem onInt ");  Updatable(); Renderable(); }
	void onUpdate() {  }
	void onDraw() {  }


};

class TestSubSystem : public SubSystem {
public:
	void onInit() { printf(" Test onInt "); Updatable(); }
	void onUpdate() { }
	void onDraw() {  }

};
